<?php

use Illuminate\Http\Request;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

$api = app('Dingo\Api\Routing\Router');


$api->version('v1', [
    'namespace' => 'App\Http\Controllers\Api',
    // 手动注册模型中间件bindings
    'middleware' => ['serializer:array','bindings'],
], function($api) {
    $api->group([
        // 'middleware' => 'api.throttle',
        // 'limit' => config('api.rate_limits.sign.limit'),
        // 'expires' => config('api.rate_limits.sign.expires'),
    ], function($api) {
            // 管理员登录
            $api->post('authorizations', 'AuthorizationsController@store');
            // 用户列表
            $api->get('users', 'UsersController@userIndex');
            // 用户详情
            $api->get('users/{user}', 'UsersController@userShow');
            // 创建用户
            $api->post('users', 'UsersController@userStore');
            // 编辑用户
            $api->patch('users/{user}', 'UsersController@userUpdate');
            // 删除用户
            $api->delete('users/{user}', 'UsersController@destroy');
            // 图片资源
            $api->post('images', 'ImagesController@store');
            // 上传文件
            $api->post('files', 'FilesCOntroller@store');

            // 信息化项目列表
            $api->get('projects', 'ProjectsController@index');
            // 信息化详情
            $api->get('projects/{project}', 'ProjectsController@show');
            // 创建信息化项目
            $api->post('projects', 'ProjectsController@store');
            // 编辑信息化项目
            $api->patch('projects/{project}', 'ProjectsController@update');
            // 删除信息化项目
            $api->delete('projects/{project}', 'ProjectsController@destroy');


            // 通讯管理列表
            $api->get('messages', 'MessagesController@index');
            // 信息化详情
            $api->get('messages/{message}', 'MessagesController@show');
            // 创建通讯管理
            $api->post('messages', 'MessagesController@store');
            // 编辑通讯管理
            $api->patch('messages/{message}', 'MessagesController@update');
            // 删除通讯管理
            $api->delete('messages/{message}', 'MessagesController@destroy');


            // 信息来源列表
            $api->get('smarties', 'SmartiesController@index');
            // 信息化详情
            $api->get('smarty/{smarty}', 'SmartiesController@show');
            // 创建智能设计管理
            $api->post('smarty', 'SmartiesController@store');
            // 编辑智能设计管理
            $api->patch('smarty/{smarty}', 'SmartiesController@update');
            // 删除智能设计管理
            $api->delete('smarty/{smarty}', 'SmartiesController@destroy');


            // 信息来源列表
            $api->get('informations', 'InformationsController@index');
            // 信息化详情
            $api->get('information/{information}', 'InformationsController@show');
            // 创建信息来源
            $api->post('information', 'InformationsController@store');
            // 编辑信息来源
            $api->patch('information/{information}', 'InformationsController@update');
            // 删除信息来源
            $api->delete('information/{information}', 'InformationsController@destroy');

            // IP 管理列表
            $api->get('ips', 'IpsController@index');
            // 信息化详情
            $api->get('ip/{ip}', 'IpsController@show');
            // 创建IP 管理
            $api->post('ip', 'IpsController@store');
            // 编辑IP 管理
            $api->patch('ip/{ip}', 'IpsController@update');
            // 删除IP 管理
            $api->delete('ip/{ip}', 'IpsController@destroy');

            $api->patch('set-information/ip/{ip}', 'IpsController@setInformation');
            









            // 需 token 验证的接口
            $api->group(['middleware' => 'api.auth'], function ($api) {
                
                // 更改手机号
                $api->patch('update/phone', 'UsersController@updatePhone');
                // 更改密码
                $api->patch('reset/password', 'UsersController@reset');
                
                // 获取用户信息
                $api->get('user', 'UsersController@me');
                // 编辑用户信息
                $api->patch('user', 'UsersController@update');
                

























            });
            
        });
});




